package com.jiangxjsy.admin.service;

import com.jiangxjsy.model.admin.bo.AdminDeptBO;
import com.jiangxjsy.model.admin.bo.AdminDeptQueryBO;
import com.jiangxjsy.model.admin.entity.AdminDept;
import com.jiangxjsy.model.admin.vo.AdminDeptVO;
import com.jiangxjsy.model.admin.vo.DeptVO;

import java.util.List;

/**
 * wukong-crm-master
 * 蒋胜宇
 * 2025/6/6 16:29
 */

public interface AdminDeptService {
    /**
     * 根据部门 id 查询部门名称
     *
     * @param deptId 部门 id
     * @return 部门名称
     */
    String getNameByDeptId(Long deptId);

    /**
     * 查询部门树列表
     *
     * @param queryBO 查询参数
     * @return 部门树列表
     */
    List<AdminDeptVO> queryDeptTree(AdminDeptQueryBO queryBO);

    /**
     * 查询部门下属部门
     * @param parentId 上级部门 id
     * @return 下属部门 id 列表
     */
    List<Integer> queryChildDept(Integer parentId);

    /**
     * 根据部门 id 查询部门信息
     *
     * @param deptId 部门 id
     * @return 部门信息
     */
    AdminDept queryByDeptId(Long deptId);

    /**
     * 查询部门的用户列表
     *
     * @return 部门的用户列表
     */
    List<DeptVO> queryDeptUserList();

    /**
     * 新增部门
     *
     * @param adminDeptBO 部门信息
     */
    void addDept(AdminDeptBO adminDeptBO);
}
